<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>JSDoc: Class: Message</title>

    <script src="scripts/prettify/prettify.js"> </script>
    <script src="scripts/prettify/lang-css.js"> </script>
    <!--[if lt IE 9]>
      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>

<body>

<div id="main">

    <h1 class="page-title">Class: Message</h1>

    




<section>

<header>
    
        <h2><span class="attribs"><span class="type-signature"></span></span>Message<span class="signature">(packetlist)</span><span class="type-signature"></span></h2>
        
            <div class="class-description"><p>Class that represents an OpenPGP message.
Can be an encrypted message, signed message, compressed message or literal message
See <a href="https://tools.ietf.org/html/rfc4880#section-11.3">https://tools.ietf.org/html/rfc4880#section-11.3</a></p></div>
        
    
</header>

<article>
    <div class="container-overview">
    
        

    
    <h2>Constructor</h2>
    

    
    <h4 class="name" id="Message"><span class="type-signature"></span>new Message<span class="signature">(packetlist)</span><span class="type-signature"></span></h4>
    

    











    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>packetlist</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="PacketList.html">PacketList</a></span>


            
            </td>

            

            

            <td class="description last"><p>The packets that form this message</p></td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js">message.js</a>, <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js#L65">line 65</a>
    </li></ul></dd>
    

    

    

    
</dl>




















    
    </div>

    

    

    
        <h3 class="subsection-title">Classes</h3>

        <dl>
            <dt><a href="Message.html">Message</a></dt>
            <dd></dd>
        </dl>
    

    

    

    

    

    
        <h3 class="subsection-title">Methods</h3>

        
            

    

    
    <h4 class="name" id="appendSignature"><span class="type-signature">(async) </span>appendSignature<span class="signature">(detachedSignature, config<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
    

    



<div class="description">
    <p>Append signature to unencrypted message object</p>
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>detachedSignature</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>
|

<span class="param-type">Uint8Array</span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            

            <td class="description last"><p>The detached ASCII-armored or Uint8Array PGP signature</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>config</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            

            <td class="description last"><p>Full configuration, defaults to openpgp.config</p></td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js">message.js</a>, <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js#L674">line 674</a>
    </li></ul></dd>
    

    

    

    
</dl>




















        
            

    

    
    <h4 class="name" id="armor"><span class="type-signature"></span>armor<span class="signature">(config<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {ReadableStream.&lt;String>}</span></h4>
    

    



<div class="description">
    <p>Returns ASCII armored text of message</p>
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>config</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            

            <td class="description last"><p>Full configuration, defaults to openpgp.config</p></td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js">message.js</a>, <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js#L695">line 695</a>
    </li></ul></dd>
    

    

    

    
</dl>















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>ASCII armor.</p>
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">ReadableStream.&lt;String></span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="compress"><span class="type-signature"></span>compress<span class="signature">(algo, config<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Message.html">Message</a>}</span></h4>
    

    



<div class="description">
    <p>Compresses the message (the literal and -if signed- signature data packets of the message)</p>
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>algo</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="module-enums.html#.compression">module:enums.compression</a></span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            

            <td class="description last"><p>compression algorithm</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>config</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            

            <td class="description last"><p>Full configuration, defaults to openpgp.config</p></td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js">message.js</a>, <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js#L539">line 539</a>
    </li></ul></dd>
    

    

    

    
</dl>















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>New message with compressed content.</p>
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type"><a href="Message.html">Message</a></span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="decrypt"><span class="type-signature">(async) </span>decrypt<span class="signature">(decryptionKeys<span class="signature-attributes">opt</span>, passwords<span class="signature-attributes">opt</span>, sessionKeys<span class="signature-attributes">opt</span>, date<span class="signature-attributes">opt</span>, config<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Promise.&lt;<a href="Message.html">Message</a>>}</span></h4>
    

    



<div class="description">
    <p>Decrypt the message. Either a private key, a session key, or a password must be specified.</p>
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>decryptionKeys</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;<a href="PrivateKey.html">PrivateKey</a>></span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            

            <td class="description last"><p>Private keys with decrypted secret data</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>passwords</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;String></span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            

            <td class="description last"><p>Passwords used to decrypt</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>sessionKeys</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;Object></span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            

            <td class="description last"><p>Session keys in the form: { data:Uint8Array, algorithm:String, [aeadAlgorithm:String] }</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>date</code></td>
            

            <td class="type">
            
                
<span class="param-type">Date</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            

            <td class="description last"><p>Use the given date for key verification instead of the current time</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>config</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            

            <td class="description last"><p>Full configuration, defaults to openpgp.config</p></td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js">message.js</a>, <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js#L112">line 112</a>
    </li></ul></dd>
    

    

    

    
</dl>















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>New message with decrypted content.</p>
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;<a href="Message.html">Message</a>></span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="decryptSessionKeys"><span class="type-signature">(async) </span>decryptSessionKeys<span class="signature">(decryptionKeys<span class="signature-attributes">opt</span>, passwords<span class="signature-attributes">opt</span>, expectedSymmetricAlgorithm<span class="signature-attributes">opt</span>, date<span class="signature-attributes">opt</span>, config<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Promise.&lt;Array.&lt;{data: Uint8Array, algorithm: String}>>}</span></h4>
    

    



<div class="description">
    <p>Decrypt encrypted session keys either with private keys or passwords.</p>
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>decryptionKeys</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;<a href="PrivateKey.html">PrivateKey</a>></span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            

            <td class="description last"><p>Private keys with decrypted secret data</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>passwords</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;String></span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            

            <td class="description last"><p>Passwords used to decrypt</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>expectedSymmetricAlgorithm</code></td>
            

            <td class="type">
            
                
<span class="param-type">enums.symmetric</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            

            <td class="description last"><p>The symmetric algorithm the SEIPDv2 / AEAD packet is encrypted with (if applicable)</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>date</code></td>
            

            <td class="type">
            
                
<span class="param-type">Date</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            

            <td class="description last"><p>Use the given date for key verification, instead of current time</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>config</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            

            <td class="description last"><p>Full configuration, defaults to openpgp.config</p></td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js">message.js</a>, <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js#L170">line 170</a>
    </li></ul></dd>
    

    

    

    
</dl>















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>array of object with potential sessionKey, algorithm pairs</p>
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;Array.&lt;{data: Uint8Array, algorithm: String}>></span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="encrypt"><span class="type-signature">(async) </span>encrypt<span class="signature">(encryptionKeys<span class="signature-attributes">opt</span>, passwords<span class="signature-attributes">opt</span>, sessionKey<span class="signature-attributes">opt</span>, wildcard<span class="signature-attributes">opt</span>, encryptionKeyIDs<span class="signature-attributes">opt</span>, date<span class="signature-attributes">opt</span>, userIDs<span class="signature-attributes">opt</span>, config<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Promise.&lt;<a href="Message.html">Message</a>>}</span></h4>
    

    



<div class="description">
    <p>Encrypt the message either with public keys, passwords, or both at once.</p>
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        
        <th>Default</th>
        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>encryptionKeys</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;<a href="PublicKey.html">PublicKey</a>></span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>Public key(s) for message encryption</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>passwords</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;String></span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>Password(s) for message encryption</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>sessionKey</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>Session key in the form: { data:Uint8Array, algorithm:String, [aeadAlgorithm:String] }</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>wildcard</code></td>
            

            <td class="type">
            
                
<span class="param-type">Boolean</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    false
                
                </td>
            

            <td class="description last"><p>Use a key ID of 0 instead of the public key IDs</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>encryptionKeyIDs</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;module:type/keyid~KeyID></span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>Array of key IDs to use for encryption. Each encryptionKeyIDs[i] corresponds to keys[i]</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>date</code></td>
            

            <td class="type">
            
                
<span class="param-type">Date</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>Override the creation date of the literal package</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>userIDs</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;Object></span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>User IDs to encrypt for, e.g. [{ name:'Robert Receiver', email:'robert@openpgp.org' }]</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>config</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>Full configuration, defaults to openpgp.config</p></td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js">message.js</a>, <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js#L391">line 391</a>
    </li></ul></dd>
    

    

    

    
</dl>















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>New message with encrypted content.</p>
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;<a href="Message.html">Message</a>></span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="getEncryptionKeyIDs"><span class="type-signature"></span>getEncryptionKeyIDs<span class="signature">()</span><span class="type-signature"> &rarr; {Array.&lt;module:type/keyid~KeyID>}</span></h4>
    

    



<div class="description">
    <p>Returns the key IDs of the keys to which the session key is encrypted</p>
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js">message.js</a>, <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js#L77">line 77</a>
    </li></ul></dd>
    

    

    

    
</dl>















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>Array of keyID objects.</p>
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Array.&lt;module:type/keyid~KeyID></span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="getFilename"><span class="type-signature"></span>getFilename<span class="signature">()</span><span class="type-signature"> &rarr; {String|null}</span></h4>
    

    



<div class="description">
    <p>Get filename from literal data packet</p>
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js">message.js</a>, <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js#L331">line 331</a>
    </li></ul></dd>
    

    

    

    
</dl>















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>Filename of literal data packet as string.</p>
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">String</span>
|

<span class="param-type">null</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="getLiteralData"><span class="type-signature"></span>getLiteralData<span class="signature">()</span><span class="type-signature"> &rarr; {Uint8Array|null}</span></h4>
    

    



<div class="description">
    <p>Get literal data that is the body of the message</p>
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js">message.js</a>, <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js#L321">line 321</a>
    </li></ul></dd>
    

    

    

    
</dl>















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>Literal body of the message as Uint8Array.</p>
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Uint8Array</span>
|

<span class="param-type">null</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="getSigningKeyIDs"><span class="type-signature"></span>getSigningKeyIDs<span class="signature">()</span><span class="type-signature"> &rarr; {Array.&lt;module:type/keyid~KeyID>}</span></h4>
    

    



<div class="description">
    <p>Returns the key IDs of the keys that signed the message</p>
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js">message.js</a>, <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js#L90">line 90</a>
    </li></ul></dd>
    

    

    

    
</dl>















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>Array of keyID objects.</p>
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Array.&lt;module:type/keyid~KeyID></span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="getText"><span class="type-signature"></span>getText<span class="signature">()</span><span class="type-signature"> &rarr; {String|null}</span></h4>
    

    



<div class="description">
    <p>Get literal data as text</p>
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js">message.js</a>, <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js#L341">line 341</a>
    </li></ul></dd>
    

    

    

    
</dl>















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>Literal body of the message interpreted as text.</p>
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">String</span>
|

<span class="param-type">null</span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="sign"><span class="type-signature">(async) </span>sign<span class="signature">(signingKeys, recipientKeys, signature<span class="signature-attributes">opt</span>, signingKeyIDs<span class="signature-attributes">opt</span>, date<span class="signature-attributes">opt</span>, signingUserIDs<span class="signature-attributes">opt</span>, recipientUserIDs<span class="signature-attributes">opt</span>, notations<span class="signature-attributes">opt</span>, config<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Promise.&lt;<a href="Message.html">Message</a>>}</span></h4>
    

    



<div class="description">
    <p>Sign the message (the literal data packet of the message)</p>
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        
        <th>Default</th>
        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>signingKeys</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;<a href="PrivateKey.html">PrivateKey</a>></span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>private keys with decrypted secret key data for signing</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>recipientKeys</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;<a href="Key.html">Key</a>></span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>recipient keys to get the signing preferences from</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>signature</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Signature.html">Signature</a></span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    null
                
                </td>
            

            <td class="description last"><p>Any existing detached signature to add to the message</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>signingKeyIDs</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;module:type/keyid~KeyID></span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>Array of key IDs to use for signing. Each signingKeyIDs[i] corresponds to signingKeys[i]</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>date</code></td>
            

            <td class="type">
            
                
<span class="param-type">Date</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>Override the creation time of the signature</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>signingUserIDs</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;UserID></span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>User IDs to sign with, e.g. [{ name:'Steve Sender', email:'steve@openpgp.org' }]</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>recipientUserIDs</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;UserID></span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>User IDs associated with <code>recipientKeys</code> to get the signing preferences from</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>notations</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>Notation Data to add to the signatures, e.g. [{ name: 'test@example.org', value: new TextEncoder().encode('test'), humanReadable: true, critical: false }]</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>config</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>Full configuration, defaults to openpgp.config</p></td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js">message.js</a>, <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js#L513">line 513</a>
    </li></ul></dd>
    

    

    

    
</dl>















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>New message with signed content.</p>
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;<a href="Message.html">Message</a>></span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="signDetached"><span class="type-signature">(async) </span>signDetached<span class="signature">(signingKeys, recipientKeys, signature<span class="signature-attributes">opt</span>, signingKeyIDs<span class="signature-attributes">opt</span>, date<span class="signature-attributes">opt</span>, signingUserIDs<span class="signature-attributes">opt</span>, recipientUserIDs<span class="signature-attributes">opt</span>, notations<span class="signature-attributes">opt</span>, config<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Promise.&lt;<a href="Signature.html">Signature</a>>}</span></h4>
    

    



<div class="description">
    <p>Create a detached signature for the message (the literal data packet of the message)</p>
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        
        <th>Default</th>
        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>signingKeys</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;<a href="PrivateKey.html">PrivateKey</a>></span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>private keys with decrypted secret key data for signing</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>recipientKeys</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;<a href="Key.html">Key</a>></span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>recipient keys to get the signing preferences from</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>signature</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Signature.html">Signature</a></span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    null
                
                </td>
            

            <td class="description last"><p>Any existing detached signature</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>signingKeyIDs</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;module:type/keyid~KeyID></span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>Array of key IDs to use for signing. Each signingKeyIDs[i] corresponds to signingKeys[i]</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>date</code></td>
            

            <td class="type">
            
                
<span class="param-type">Date</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>Override the creation time of the signature</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>signingUserIDs</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;UserID></span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>User IDs to sign with, e.g. [{ name:'Steve Sender', email:'steve@openpgp.org' }]</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>recipientUserIDs</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;UserID></span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>User IDs associated with <code>recipientKeys</code> to get the signing preferences from</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>notations</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>Notation Data to add to the signatures, e.g. [{ name: 'test@example.org', value: new TextEncoder().encode('test'), humanReadable: true, critical: false }]</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>config</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>Full configuration, defaults to openpgp.config</p></td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js">message.js</a>, <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js#L568">line 568</a>
    </li></ul></dd>
    

    

    

    
</dl>















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>New detached signature of message content.</p>
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;<a href="Signature.html">Signature</a>></span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="unwrapCompressed"><span class="type-signature"></span>unwrapCompressed<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Message.html">Message</a>}</span></h4>
    

    



<div class="description">
    <p>Unwrap compressed message</p>
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js">message.js</a>, <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js#L661">line 661</a>
    </li></ul></dd>
    

    

    

    
</dl>















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>Message Content of compressed message.</p>
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type"><a href="Message.html">Message</a></span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="verify"><span class="type-signature">(async) </span>verify<span class="signature">(verificationKeys, date<span class="signature-attributes">opt</span>, config<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Promise.&lt;Array.&lt;{keyID: module:type/keyid~KeyID, signature: Promise.&lt;<a href="Signature.html">Signature</a>>, verified: Promise.&lt;true>}>>}</span></h4>
    

    



<div class="description">
    <p>Verify message signatures</p>
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>verificationKeys</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;<a href="PublicKey.html">PublicKey</a>></span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            

            <td class="description last"><p>Array of public keys to verify signatures</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>date</code></td>
            

            <td class="type">
            
                
<span class="param-type">Date</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            

            <td class="description last"><p>Verify the signature against the given date, i.e. check signature creation time &lt; date &lt; expiration time</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>config</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            

            <td class="description last"><p>Full configuration, defaults to openpgp.config</p></td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js">message.js</a>, <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js#L588">line 588</a>
    </li></ul></dd>
    

    

    

    
</dl>















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>List of signer's keyID and validity of signatures.</p>
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;Array.&lt;{keyID: module:type/keyid~KeyID, signature: Promise.&lt;<a href="Signature.html">Signature</a>>, verified: Promise.&lt;true>}>></span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="verifyDetached"><span class="type-signature">(async) </span>verifyDetached<span class="signature">(verificationKeys, signature, date, config<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Promise.&lt;Array.&lt;{keyID: module:type/keyid~KeyID, signature: Promise.&lt;<a href="Signature.html">Signature</a>>, verified: Promise.&lt;true>}>>}</span></h4>
    

    



<div class="description">
    <p>Verify detached message signature</p>
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>verificationKeys</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;<a href="PublicKey.html">PublicKey</a>></span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            

            <td class="description last"><p>Array of public keys to verify signatures</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>signature</code></td>
            

            <td class="type">
            
                
<span class="param-type"><a href="Signature.html">Signature</a></span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            

            <td class="description last"></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>date</code></td>
            

            <td class="type">
            
                
<span class="param-type">Date</span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            

            <td class="description last"><p>Verify the signature against the given date, i.e. check signature creation time &lt; date &lt; expiration time</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>config</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            

            <td class="description last"><p>Full configuration, defaults to openpgp.config</p></td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js">message.js</a>, <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js#L647">line 647</a>
    </li></ul></dd>
    

    

    

    
</dl>















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>List of signer's keyID and validity of signature.</p>
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;Array.&lt;{keyID: module:type/keyid~KeyID, signature: Promise.&lt;<a href="Signature.html">Signature</a>>, verified: Promise.&lt;true>}>></span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id="write"><span class="type-signature"></span>write<span class="signature">()</span><span class="type-signature"> &rarr; {ReadableStream.&lt;Uint8Array>}</span></h4>
    

    



<div class="description">
    <p>Returns binary encoded message</p>
</div>













<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js">message.js</a>, <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js#L686">line 686</a>
    </li></ul></dd>
    

    

    

    
</dl>















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>Binary message.</p>
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">ReadableStream.&lt;Uint8Array></span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id=".encryptSessionKey"><span class="type-signature">(async, static) </span>encryptSessionKey<span class="signature">(sessionKey, algorithmName, aeadAlgorithmName<span class="signature-attributes">opt</span>, encryptionKeys<span class="signature-attributes">opt</span>, passwords<span class="signature-attributes">opt</span>, wildcard<span class="signature-attributes">opt</span>, encryptionKeyIDs<span class="signature-attributes">opt</span>, date<span class="signature-attributes">opt</span>, userIDs<span class="signature-attributes">opt</span>, config<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Promise.&lt;<a href="Message.html">Message</a>>}</span></h4>
    

    



<div class="description">
    <p>Encrypt a session key either with public keys, passwords, or both at once.</p>
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        
        <th>Default</th>
        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>sessionKey</code></td>
            

            <td class="type">
            
                
<span class="param-type">Uint8Array</span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>session key for encryption</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>algorithmName</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            
                <td class="attributes">
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>session key algorithm</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>aeadAlgorithmName</code></td>
            

            <td class="type">
            
                
<span class="param-type">String</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>AEAD algorithm, e.g. 'eax' or 'ocb'</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>encryptionKeys</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;<a href="PublicKey.html">PublicKey</a>></span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>Public key(s) for message encryption</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>passwords</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;String></span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>For message encryption</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>wildcard</code></td>
            

            <td class="type">
            
                
<span class="param-type">Boolean</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                    false
                
                </td>
            

            <td class="description last"><p>Use a key ID of 0 instead of the public key IDs</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>encryptionKeyIDs</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;module:type/keyid~KeyID></span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>Array of key IDs to use for encryption. Each encryptionKeyIDs[i] corresponds to encryptionKeys[i]</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>date</code></td>
            

            <td class="type">
            
                
<span class="param-type">Date</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>Override the date</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>userIDs</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>User IDs to encrypt for, e.g. [{ name:'Robert Receiver', email:'robert@openpgp.org' }]</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>config</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            
                <td class="default">
                
                </td>
            

            <td class="description last"><p>Full configuration, defaults to openpgp.config</p></td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js">message.js</a>, <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js#L437">line 437</a>
    </li></ul></dd>
    

    

    

    
</dl>















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>New message with encrypted content.</p>
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;<a href="Message.html">Message</a>></span>


    </dd>
</dl>

    





        
            

    

    
    <h4 class="name" id=".generateSessionKey"><span class="type-signature">(async, static) </span>generateSessionKey<span class="signature">(encryptionKeys<span class="signature-attributes">opt</span>, date<span class="signature-attributes">opt</span>, userIDs<span class="signature-attributes">opt</span>, config<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Promise.&lt;{data: Uint8Array, algorithm: String, aeadAlgorithm: (undefined|String)}>}</span></h4>
    

    



<div class="description">
    <p>Generate a new session key object, taking the algorithm preferences of the passed encryption keys into account, if any.</p>
</div>









    <h5>Parameters:</h5>
    

<table class="params">
    <thead>
    <tr>
        
        <th>Name</th>
        

        <th>Type</th>

        
        <th>Attributes</th>
        

        

        <th class="last">Description</th>
    </tr>
    </thead>

    <tbody>
    

        <tr>
            
                <td class="name"><code>encryptionKeys</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;<a href="PublicKey.html">PublicKey</a>></span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            

            <td class="description last"><p>Public key(s) to select algorithm preferences for</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>date</code></td>
            

            <td class="type">
            
                
<span class="param-type">Date</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            

            <td class="description last"><p>Date to select algorithm preferences at</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>userIDs</code></td>
            

            <td class="type">
            
                
<span class="param-type">Array.&lt;Object></span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            

            <td class="description last"><p>User IDs to select algorithm preferences for</p></td>
        </tr>

    

        <tr>
            
                <td class="name"><code>config</code></td>
            

            <td class="type">
            
                
<span class="param-type">Object</span>


            
            </td>

            
                <td class="attributes">
                
                    &lt;optional><br>
                

                

                
                </td>
            

            

            <td class="description last"><p>Full configuration, defaults to openpgp.config</p></td>
        </tr>

    
    </tbody>
</table>






<dl class="details">

    

    

    

    

    

    

    

    

    

    

    

    

    

    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js">message.js</a>, <a href="https://github.com/openpgpjs/openpgpjs/blob/v6.2.2/src/message.js#L359">line 359</a>
    </li></ul></dd>
    

    

    

    
</dl>















<h5>Returns:</h5>

        
<div class="param-desc">
    <p>Object with session key data and algorithms.</p>
</div>



<dl>
    <dt>
        Type
    </dt>
    <dd>
        
<span class="param-type">Promise.&lt;{data: Uint8Array, algorithm: String, aeadAlgorithm: (undefined|String)}></span>


    </dd>
</dl>

    





        
    

    

    
</article>

</section>




</div>

<nav>
    <h2><a href="index.html">Home</a></h2><h3>Functions</h3><ul><li><a href="global.html#armor">armor</a></li><li><a href="global.html#createCleartextMessage">createCleartextMessage</a></li><li><a href="global.html#createMessage">createMessage</a></li><li><a href="global.html#decrypt">decrypt</a></li><li><a href="global.html#decryptKey">decryptKey</a></li><li><a href="global.html#decryptSessionKeys">decryptSessionKeys</a></li><li><a href="global.html#encrypt">encrypt</a></li><li><a href="global.html#encryptKey">encryptKey</a></li><li><a href="global.html#encryptSessionKey">encryptSessionKey</a></li><li><a href="global.html#generateKey">generateKey</a></li><li><a href="global.html#generateSessionKey">generateSessionKey</a></li><li><a href="global.html#readCleartextMessage">readCleartextMessage</a></li><li><a href="global.html#readMessage">readMessage</a></li><li><a href="global.html#readSignature">readSignature</a></li><li><a href="global.html#reformatKey">reformatKey</a></li><li><a href="global.html#revokeKey">revokeKey</a></li><li><a href="global.html#sign">sign</a></li><li><a href="global.html#unarmor">unarmor</a></li><li><a href="global.html#verify">verify</a></li></ul><h3>Modules</h3><ul><li><a href="module-config.html">config</a></li><li><a href="module-enums.html">enums</a></li></ul><h3>Classes</h3><ul><li><a href="AEADEncryptedDataPacket.html">AEADEncryptedDataPacket</a></li><li><a href="CleartextMessage.html">CleartextMessage</a></li><li><a href="CompressedDataPacket.html">CompressedDataPacket</a></li><li><a href="Key.html">Key</a></li><li><a href="LiteralDataPacket.html">LiteralDataPacket</a></li><li><a href="MarkerPacket.html">MarkerPacket</a></li><li><a href="Message.html">Message</a></li><li><a href="OnePassSignaturePacket.html">OnePassSignaturePacket</a></li><li><a href="PacketList.html">PacketList</a></li><li><a href="PaddingPacket.html">PaddingPacket</a></li><li><a href="PrivateKey.html">PrivateKey</a></li><li><a href="PublicKey.html">PublicKey</a></li><li><a href="PublicKeyEncryptedSessionKeyPacket.html">PublicKeyEncryptedSessionKeyPacket</a></li><li><a href="PublicKeyPacket.html">PublicKeyPacket</a></li><li><a href="PublicSubkeyPacket.html">PublicSubkeyPacket</a></li><li><a href="SecretKeyPacket.html">SecretKeyPacket</a></li><li><a href="SecretSubkeyPacket.html">SecretSubkeyPacket</a></li><li><a href="Signature.html">Signature</a></li><li><a href="SignaturePacket.html">SignaturePacket</a></li><li><a href="SymEncryptedIntegrityProtectedDataPacket.html">SymEncryptedIntegrityProtectedDataPacket</a></li><li><a href="SymEncryptedSessionKeyPacket.html">SymEncryptedSessionKeyPacket</a></li><li><a href="SymmetricallyEncryptedDataPacket.html">SymmetricallyEncryptedDataPacket</a></li><li><a href="TrustPacket.html">TrustPacket</a></li><li><a href="UserAttributePacket.html">UserAttributePacket</a></li><li><a href="UserIDPacket.html">UserIDPacket</a></li><li><a href="module-key_Subkey-Subkey.html">Subkey</a></li><li><a href="module-key_User-User.html">User</a></li></ul>
</nav>

<br class="clear">

<footer>
    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 4.0.4</a>
</footer>

<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>